00001 /////////////////////////////////////////////////////////////////////////////// 00002 /// @file deXLoader.hpp 00003 /// 00004 /// @brief DirectX X file loading for meshes 00005 /// 00006 /// @author Assassin 00007 /// 00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the 00009 /// contents of this file is subject to the Destiny3D Member License which 00010 /// can be found at http://www.destiny3d.com. Any other usage is prohibited. 00011 /// 00012 /// This file is distributed "AS IS" without warranty of any kind. Novus 00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file 00014 /// for any particular purpose. 00015 /// 00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved. 00017 /// 00018 /// <hr> 00019 /// Change History 00020 /// <hr> 00021 /// 00022 /// @date Mar 2002 00023 /// @author Assassin 00024 /// @remarks Creation 00025 /// 00026 /////////////////////////////////////////////////////////////////////////////// 00027 00028 #ifndef DEXLOADER_HPP 00029 #define DEXLOADER_HPP 00030 00031 #include <d3dx8.h> 00032 #include <d3d8types.h> 00033 #include "deGlobalTypes.hpp" 00034 #include "deRenderStates.hpp" 00035 00036 struct deXTexture 00037 { 00038 char Texture_Name[252]; 00039 IdeRenderTexture * RenderTexture; 00040 }; 00041 00042 struct deXMaterial 00043 { 00044 D3DMATERIAL8 Mat8; 00045 DWORD NumIndices; 00046 long TextureIndex; 00047 IdeRenderMaterial* deMat; 00048 }; 00049 00050 struct deXTexCoord 00051 { 00052 float u; 00053 float v; 00054 }; 00055 00056 class deXMesh 00057 { 00058 public: 00059 DWORD NumVerts; 00060 DWORD NumIndices; 00061 D3DVECTOR * VertList; 00062 D3DVECTOR * NormList; 00063 deXTexCoord * CoordList; 00064 00065 deXMesh * Child; 00066 deXMesh * Next; 00067 D3DMATRIX Matrix; 00068 00069 DWORD NumMaterials; 00070 deXMaterial * MaterialList; 00071 WORD *Indices; 00072 00073 deBoolean HasVerts; 00074 deBoolean HasNorms; 00075 deBoolean HasCoords; 00076 00077 deXMesh (); 00078 ~deXMesh (); 00079 void AddChild(deXMesh *pChildObject); 00080 void AddNext (deXMesh *pChildObject); 00081 void GenerateNormals(); 00082 }; 00083 00084 extern "C" deXMesh * deXLoader_LoadX(char * filename); 00085 00086 #endif 00087
1.3-rc3